/*
 * @Description: 会话实体对象
 * @Author: Wenguang Song
 * @Date: 2022-04-29 16:02
 * @LastEditors: Wenguang Song
 * @LastEditTime: 2022-05-05 09:06
 * @FilePath: /call_service/src/common/models/ConversationEntity.js
 */
class Conversation {
  constructor(options = {}) {
    this.id = options.id
    this.unreadCount = 0
    this.channel = options.channel // 会话渠道 (会话类型: webim | wechat | voip)
    this.latestMessage = {} // Message
    this.status = 0 // 会话状态: [当前会话 | 历史会话]
    this.datetime = '' // 会话开始时间
    this.message = options.message
    this.sender = options.sender || {
      senderHeadImgUri: '', // 发送者头像
      senderUserId: '', // 发送者id
      senderUserName: '', // 发送者昵称
      phone: '', // 手机号码
      isp: '', // 运营商
      region: '', // 地区
    }
  }

  static list = []

  /**
   * 添加会话
   * @param {*}
   * @return {*}
   */
  static add(options) {
    list.push(new Conversation(options))
  }

  /**
   * 结束会话
   * @param {*} id
   * @return {*}
   */
  overConversation(id) {}

  /**
   * 根据会话 ID 获取会话详情
   * @param {*} id
   * @return {*}
   */
  static getById(id) {
    return list.find((item) => item.id === id)
  }

  /**
   * 修改会话状态
   * @param {*} id 会话id
   * @param {*} status 要就该的状态
   * @return {*}
   */
  static changeStatus(id, status) {
    list.find((item) => {
      if (item.id === id) {
        item.status = status
      }
    })
  }
}
